﻿using System;
using System.Collections.Generic;
using Mammoth.Entities;

namespace Mammoth.Services
{
    public interface IGTalkService
    {
        IList<BuddyEntity> BuddyList { get; }
        IList<AccountEntity> AccountList { get; }

        void DoLogin(string email, string password);
        void DoLogout(string serviceEmail);
        void ApproveSubscirption(string serviceEmail, string buddyEmail);
        void BlockBuddy(string serviceEmail, string buddyEmail);
        void SendMessage(string serviceEmail, string buddyEmail, string message);
        void Subscribe(string serviceEmail, string buddyEmail);
        void RemoveAccount(string serviceEmail);
        void LoginAll();
        void AddAccount(string email, string password, bool isAutoLogin);

        event EventHandler<Mammoth.Events.ServiceErrorEventArgs> Error;
        event EventHandler<Mammoth.Events.ServiceEventArgs> FriendListLoad;
        event EventHandler<Mammoth.Events.ServiceEventArgs> Login;
        event EventHandler<Mammoth.Events.ServiceEventArgs> Logout;
        event EventHandler<Mammoth.Events.ServiceMessageEventArgs> Message;
        event EventHandler<Mammoth.Events.SubscriptionRequestEventArgs> SubscriptionRequest;
        event EventHandler AccountListChange;
    }
}
